/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package folders2;

import java.io.File;
import java.io.IOException;

/**
 *
 * @author Administrator
 */
public interface ProjectFileInterface {

    /**
     * This method is used to copy folder contents to projectFile folder
     * @param source source folder which contains all contents
     * @throws java.io.IOException
     */
    void copy(File source) throws IOException;

    /**
     * This method is used to delete project file(directory && files)
     * if directory then delete every hting in it
     * if it is file only then file directly deleted
     */
    void deleteFile();

    /**
     * This method is used to get file
     * @return returns result of type File which is reference to this project file
     */
    File getMyFile();

    /**
     * This method is used to search for any file or directories in this project file
     * @param dir directory name
     * @return result of type ProjectFile
     * returns null if there is no file with this name
     */
    ProjectFile search(String dir);

    /**
     * This method is used to set file
     * @param myFile new file
     */
    void setMyFile(File myFile);

}
